/**********************************************************************/
/*   ____  ____                                                       */
/*  /   /\/   /                                                       */
/* /___/  \  /                                                        */
/* \   \   \/                                                         */
/*  \   \        Copyright (c) 2003-2013 Xilinx, Inc.                 */
/*  /   /        All Right Reserved.                                  */
/* /---/   /\                                                         */
/* \   \  /  \                                                        */
/*  \___\/\___\                                                       */
/**********************************************************************/

#if defined(_WIN32)
 #include "stdio.h"
#endif
#include "iki.h"
#include <string.h>
#include <math.h>
#ifdef __GNUC__
#include <stdlib.h>
#else
#include <malloc.h>
#define alloca _alloca
#endif
/**********************************************************************/
/*   ____  ____                                                       */
/*  /   /\/   /                                                       */
/* /___/  \  /                                                        */
/* \   \   \/                                                         */
/*  \   \        Copyright (c) 2003-2013 Xilinx, Inc.                 */
/*  /   /        All Right Reserved.                                  */
/* /---/   /\                                                         */
/* \   \  /  \                                                        */
/*  \___\/\___\                                                       */
/**********************************************************************/

#if defined(_WIN32)
 #include "stdio.h"
#endif
#include "iki.h"
#include <string.h>
#include <math.h>
#ifdef __GNUC__
#include <stdlib.h>
#else
#include <malloc.h>
#define alloca _alloca
#endif
typedef void (*funcp)(char *, char *);
extern int main(int, char**);
extern void execute_907(char*, char *);
extern void execute_908(char*, char *);
extern void execute_909(char*, char *);
extern void execute_80(char*, char *);
extern void execute_83(char*, char *);
extern void execute_901(char*, char *);
extern void execute_902(char*, char *);
extern void execute_899(char*, char *);
extern void execute_97(char*, char *);
extern void execute_98(char*, char *);
extern void execute_99(char*, char *);
extern void execute_100(char*, char *);
extern void execute_101(char*, char *);
extern void execute_893(char*, char *);
extern void execute_888(char*, char *);
extern void execute_122(char*, char *);
extern void execute_143(char*, char *);
extern void execute_159(char*, char *);
extern void execute_175(char*, char *);
extern void execute_191(char*, char *);
extern void execute_207(char*, char *);
extern void execute_223(char*, char *);
extern void execute_239(char*, char *);
extern void execute_255(char*, char *);
extern void execute_272(char*, char *);
extern void execute_283(char*, char *);
extern void execute_300(char*, char *);
extern void execute_316(char*, char *);
extern void execute_332(char*, char *);
extern void execute_348(char*, char *);
extern void execute_364(char*, char *);
extern void execute_380(char*, char *);
extern void execute_396(char*, char *);
extern void execute_412(char*, char *);
extern void execute_429(char*, char *);
extern void execute_440(char*, char *);
extern void execute_457(char*, char *);
extern void execute_473(char*, char *);
extern void execute_489(char*, char *);
extern void execute_505(char*, char *);
extern void execute_521(char*, char *);
extern void execute_537(char*, char *);
extern void execute_553(char*, char *);
extern void execute_569(char*, char *);
extern void execute_586(char*, char *);
extern void execute_597(char*, char *);
extern void execute_614(char*, char *);
extern void execute_630(char*, char *);
extern void execute_646(char*, char *);
extern void execute_662(char*, char *);
extern void execute_678(char*, char *);
extern void execute_694(char*, char *);
extern void execute_710(char*, char *);
extern void execute_726(char*, char *);
extern void execute_743(char*, char *);
extern void execute_782(char*, char *);
extern void execute_751(char*, char *);
extern void execute_753(char*, char *);
extern void execute_755(char*, char *);
extern void execute_757(char*, char *);
extern void execute_760(char*, char *);
extern void execute_762(char*, char *);
extern void execute_764(char*, char *);
extern void execute_766(char*, char *);
extern void execute_768(char*, char *);
extern void execute_770(char*, char *);
extern void execute_772(char*, char *);
extern void execute_774(char*, char *);
extern void execute_776(char*, char *);
extern void execute_778(char*, char *);
extern void execute_780(char*, char *);
extern void execute_789(char*, char *);
extern void execute_797(char*, char *);
extern void execute_803(char*, char *);
extern void execute_811(char*, char *);
extern void execute_818(char*, char *);
extern void execute_824(char*, char *);
extern void execute_835(char*, char *);
extern void execute_843(char*, char *);
extern void execute_851(char*, char *);
extern void execute_858(char*, char *);
extern void execute_865(char*, char *);
extern void execute_871(char*, char *);
extern void execute_878(char*, char *);
extern void execute_885(char*, char *);
extern void execute_892(char*, char *);
extern void execute_129(char*, char *);
extern void execute_131(char*, char *);
extern void execute_133(char*, char *);
extern void execute_111(char*, char *);
extern void execute_112(char*, char *);
extern void execute_107(char*, char *);
extern void execute_110(char*, char *);
extern void execute_904(char*, char *);
extern void execute_905(char*, char *);
extern void execute_906(char*, char *);
extern void execute_910(char*, char *);
extern void execute_911(char*, char *);
extern void execute_912(char*, char *);
extern void execute_913(char*, char *);
extern void execute_914(char*, char *);
extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
extern void transaction_3(char*, char*, unsigned, unsigned, unsigned);
extern void transaction_4(char*, char*, unsigned, unsigned, unsigned);
extern void transaction_5(char*, char*, unsigned, unsigned, unsigned);
extern void transaction_8(char*, char*, unsigned, unsigned, unsigned);
extern void vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
funcp funcTab[107] = {(funcp)execute_907, (funcp)execute_908, (funcp)execute_909, (funcp)execute_80, (funcp)execute_83, (funcp)execute_901, (funcp)execute_902, (funcp)execute_899, (funcp)execute_97, (funcp)execute_98, (funcp)execute_99, (funcp)execute_100, (funcp)execute_101, (funcp)execute_893, (funcp)execute_888, (funcp)execute_122, (funcp)execute_143, (funcp)execute_159, (funcp)execute_175, (funcp)execute_191, (funcp)execute_207, (funcp)execute_223, (funcp)execute_239, (funcp)execute_255, (funcp)execute_272, (funcp)execute_283, (funcp)execute_300, (funcp)execute_316, (funcp)execute_332, (funcp)execute_348, (funcp)execute_364, (funcp)execute_380, (funcp)execute_396, (funcp)execute_412, (funcp)execute_429, (funcp)execute_440, (funcp)execute_457, (funcp)execute_473, (funcp)execute_489, (funcp)execute_505, (funcp)execute_521, (funcp)execute_537, (funcp)execute_553, (funcp)execute_569, (funcp)execute_586, (funcp)execute_597, (funcp)execute_614, (funcp)execute_630, (funcp)execute_646, (funcp)execute_662, (funcp)execute_678, (funcp)execute_694, (funcp)execute_710, (funcp)execute_726, (funcp)execute_743, (funcp)execute_782, (funcp)execute_751, (funcp)execute_753, (funcp)execute_755, (funcp)execute_757, (funcp)execute_760, (funcp)execute_762, (funcp)execute_764, (funcp)execute_766, (funcp)execute_768, (funcp)execute_770, (funcp)execute_772, (funcp)execute_774, (funcp)execute_776, (funcp)execute_778, (funcp)execute_780, (funcp)execute_789, (funcp)execute_797, (funcp)execute_803, (funcp)execute_811, (funcp)execute_818, (funcp)execute_824, (funcp)execute_835, (funcp)execute_843, (funcp)execute_851, (funcp)execute_858, (funcp)execute_865, (funcp)execute_871, (funcp)execute_878, (funcp)execute_885, (funcp)execute_892, (funcp)execute_129, (funcp)execute_131, (funcp)execute_133, (funcp)execute_111, (funcp)execute_112, (funcp)execute_107, (funcp)execute_110, (funcp)execute_904, (funcp)execute_905, (funcp)execute_906, (funcp)execute_910, (funcp)execute_911, (funcp)execute_912, (funcp)execute_913, (funcp)execute_914, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_3, (funcp)transaction_4, (funcp)transaction_5, (funcp)transaction_8, (funcp)vhdl_transfunc_eventcallback};
const int NumRelocateId= 107;

void relocate(char *dp)
{
	iki_relocate(dp, "xsim.dir/squre_multiplier_ip_wrapper_behav/xsim.reloc",  (void **)funcTab, 107);
	iki_vhdl_file_variable_register(dp + 44840);
	iki_vhdl_file_variable_register(dp + 44896);


	/*Populate the transaction function pointer field in the whole net structure */
}

void sensitize(char *dp)
{
	iki_sensitize(dp, "xsim.dir/squre_multiplier_ip_wrapper_behav/xsim.reloc");
}

void simulate(char *dp)
{
		iki_schedule_processes_at_time_zero(dp, "xsim.dir/squre_multiplier_ip_wrapper_behav/xsim.reloc");
	// Initialize Verilog nets in mixed simulation, for the cases when the value at time 0 should be propagated from the mixed language Vhdl net

	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 58176, dp + 57416, 0, 15, 0, 15, 16, 1);
	iki_execute_processes();

	// Schedule resolution functions for the multiply driven Verilog nets that have strength
	// Schedule transaction functions for the singly driven Verilog nets that have strength

}
#include "iki_bridge.h"
void relocate(char *);

void sensitize(char *);

void simulate(char *);

extern SYSTEMCLIB_IMP_DLLSPEC void local_register_implicit_channel(int, char*);
extern void implicit_HDL_SCinstantiate();

extern void implicit_HDL_SCcleanup();

extern SYSTEMCLIB_IMP_DLLSPEC int xsim_argc_copy ;
extern SYSTEMCLIB_IMP_DLLSPEC char** xsim_argv_copy ;

int main(int argc, char **argv)
{
    iki_heap_initialize("ms", "isimmm", 0, 2147483648) ;
    iki_set_sv_type_file_path_name("xsim.dir/squre_multiplier_ip_wrapper_behav/xsim.svtype");
    iki_set_crvs_dump_file_path_name("xsim.dir/squre_multiplier_ip_wrapper_behav/xsim.crvsdump");
    void* design_handle = iki_create_design("xsim.dir/squre_multiplier_ip_wrapper_behav/xsim.mem", (void *)relocate, (void *)sensitize, (void *)simulate, 0, isimBridge_getWdbWriter(), 0, argc, argv);
     iki_set_rc_trial_count(100);
    (void) design_handle;
    return iki_simulate_design();
}
